package include

import vo "github.com/lab-online/internal/shared/valueobject"

type ReportService interface {
	SaveReport(*vo.Report) (vo.ReportVO, error)
	GetReportByID(uint) (vo.ReportVO, error)
	SearchReport(*vo.Report) ([]vo.ReportVO, error)
	GetReportByStudentAndClassIDAndExperimentID(
		student string, classID, experimentID uint,
	) (vo.ReportVO, error)
}

type ClassService interface {
	GetClassByID(uint) (vo.ClassVO, error)
	CheckClassIncludeStudent(class uint, student string) (bool, error)
}

type CourseService interface {
	CheckCourseExperimentExists(courseID, experimentID uint) (bool, error)
	GetExperimentByID(uint) (vo.ExperimentVO, error)
}
